#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "ABWindow.h"
#include "Button.h"
#include "EditCombo.h"
#include "StaticText.h"
#include "CheckBox.h"
#include "ComboBox.h"

class MainWindow : public ABWindow
{
public:
	MainWindow();
	virtual ~MainWindow();

	bool Setup(HWND a_parent, HINSTANCE a_hInst, int a_xPos, int a_yPos, int a_width, int a_height, char* a_pWindowName, char* a_pClassName, DWORD a_style);
	void Update();

	virtual void Activate(WPARAM a_wParam);
	virtual void Close();
	virtual void Destroy();
	virtual void RButtonDown(WPARAM a_wParam, int a_x, int a_y);
	virtual void Size(int a_w, int a_h, LPARAM a_lParam);
	virtual void Command(int a_id, int a_cmd, LPARAM a_msg);
	virtual void AfterMessages();
	virtual void ContextMenu(HWND a_hWnd, int a_x, int a_y);
	virtual void KeyDown(HWND a_hWnd, WPARAM a_wParam);
	virtual void ButtonPress(HWND a_hWnd);

	//Gets
	EditCombo* GetEvolutionCount() const;
	EditCombo* GetFastestLap() const;
	EditCombo* GetAverageLap() const;
	EditCombo* GetSlowestLap() const;

private:
	//Buttons
	Button* m_pPlayButton;
	Button* m_pPauseButton;
	Button* m_pRestartButton;

	//Check boxes
	CheckBox* m_pDebugCheck;

	//Combo - Static text and edit box
	EditCombo* m_pFastestLap;
	EditCombo* m_pAverageLap;
	EditCombo* m_pSlowestLap;
	EditCombo* m_pEvolutionCount;

	ComboBox* m_pEvolutionCombo;
	StaticText* m_pEvolutionText;

	ComboBox* m_pEvolution2Combo;
	StaticText* m_pEvolution2Text;

	ComboBox* m_pParent1Combo;
	StaticText* m_pParent1Text;

	ComboBox* m_pParent2Combo;
	StaticText* m_pParent2Text;

	ComboBox* m_pPenaltyCombo;
	StaticText* m_pPenaltyText;

	ComboBox* m_pTimeoutCombo;
	StaticText* m_pTimeoutText;

	ComboBox* m_pNumAgentsCombo;
	StaticText* m_pNumAgentsText;

	//Window title
	StaticText* m_pTitle;
	StaticText* m_pTitle2;
};

#endif //MAINWINDOW_H